package com.example.jdk8;

/**
 * jdk8 中接口允许有默认的实现方法
 */
public interface InterfaceTest {
    // 没有方法体的抽象方法
    int calculate(int a);

    // 包含方法体的抽象方法
    default double calculate(double a, double b) {
        return a + b;
    }

    // 包含方法体的抽象方法
    default double calculate(int num, int numTest) {
        return Math.sqrt(num + numTest);
    }
}

class Test {
    public static void main(String[] args) {
        InterfaceTest interfaceTest = new InterfaceTest() {
            @Override
            public int calculate(int a) {
                return (int) calculate(a, 100);
            }
        };
        interfaceTest.calculate(1, 99);
        interfaceTest.calculate(1.0d, 2.0d);
    }
}
